package com.ejuornal.dao;

import java.util.List;

import com.ejuornal.bean.PerPeriodical;
import com.ejuornal.bean.PerPeriodicalSub;

public interface PerPeriodicalDao extends BaseDao<PerPeriodical> {
	/**
	 * 根据期刊ID和该期期刊的期刊号查询上或下一期的期刊
	 * @param periodicalId 期刊ID号
	 * @param number 要查询期刊的期刊号
	 * @return 返回PerPeriodical
	 */
	public PerPeriodical findUpNextPerPeriodical(int periodicalId, int number);
	
	/**
	 * 增加最新期刊，返回最新期刊的主键
	 * @param perPeriodical
	 * @return
	 */
	public int add(final  PerPeriodical perPeriodical);
	
	/**
	 * 根据ID号查询当前期刊
	 * @param perPeriodicalId ID号
	 * @return
	 */
	public PerPeriodical findById(int perPeriodicalId);
	
	/**
	 * Title:findTop
	 * Description:查找期刊中最新一期的信息。显示前count条
	 * @param count
	 * @return
	 * List<Periodical>
	 */
	public List<PerPeriodical> findNew(int count);
	
	/**
	 * 根据点击量查找前几条期刊信息
	 * @param count
	 * @return
	 */
	public List<PerPeriodical> findTop(int count);
	
	/**
	 * 查询期刊periodicalId一共有多少期
	 * @param periodicalId 期刊号
	 * @param status 每期期刊的状态
	 * @return 返回得到数据条数
	 */
	public List<PerPeriodical> findPerPeriodicalNumbers(int periodicalId, String status);
	
	/**
	 * 查找最新期刊
	 * @author lyy
	 * @param periodicalId
	 * @param status
	 * @return
	 */
	public PerPeriodical findNewPerPeriodical(int periodicalId, String status);
	
	/**
	 * 邮箱订阅，发送邮件功能，查找需要发送邮件的期刊
	 * @param status
	 * @return
	 */
	public List<PerPeriodicalSub> findBystatus(int status);
	
	/**
	 * 增加需要发送邮件的期刊
	 * @param pps
	 */
	public void add(PerPeriodicalSub pps);
	
	/**
	 * 取消需要发送邮件的期刊
	 * @param pps
	 */
	public void update(PerPeriodicalSub pps);
	
	/**
	 * 查询不同状态的每期期刊，针对编辑
	 * @param userId 编辑ID
	 * @param status 每期期刊状态
	 * @return
	 */
	public List<PerPeriodical> findPerPerEditor(int userId, String status);
}
